package cn.yuysaln.trigger.api;

import cn.yuysaln.trigger.api.dto.RaffleAwardListRequestDTO;
import cn.yuysaln.trigger.api.dto.RaffleAwardListResponseDTO;
import cn.yuysaln.trigger.api.dto.RaffleStrategyRequestDTO;
import cn.yuysaln.trigger.api.dto.RaffleStrategyResponseDTO;
import cn.yuysaln.types.model.Response;

import java.util.List;

/**
 * 向前端开放的抽奖相关接口
 */
public interface IRaffleStrategyService {
    /**
     * 转盘装配
     * @param strategyId 策略ID
     * @return 成功与否
     */
    Response<Boolean> strategyArmory(Long strategyId);

    /**
     * 通过请求DTO查询策略奖品列表
     * @param requestDTO 请求对象
     * @return 奖品列表
     */
    Response<List<RaffleAwardListResponseDTO>> queryRaffleAwardList(RaffleAwardListRequestDTO requestDTO);

    /**
     * 进行一次抽奖
     * @param requestDTO 请求DTO
     * @return 抽到的奖品DTO
     */
    Response<RaffleStrategyResponseDTO> randomRaffle(RaffleStrategyRequestDTO requestDTO);

}
